
import java.util.*;

//import java.lang.String;
//import java.io.*;
import java.io.*;
import java.util.Arrays;
public class Seccion {
	
	
	 private int numero;
	 
	 			static String nombre;
	 		  Vector<Estudiante> estudiantes = new Vector<Estudiante>();
	 		 
	 		  Profesor profesor;
			 
	 	public Seccion() {
				super();
			}

		public void SetProfesor(Profesor profesor)
	 	{
	 		
	 		this.profesor=profesor;
	 		
	 	}
	 	
	 	public Estudiante Buscar(long ced){
			
			
	 			for(int i=0;i< estudiantes.size();++i)
	 			{    
	 				if(ced==estudiantes.get(i).getCedula())
	 				{   
	 					return estudiantes.get(i);
	 					
	 					}
	 				
				
	 			}
	 				return null;
		}
		 
		public Seccion(int numero) {
			super();
			this.numero = numero;
		}

		public void inscribirEstudiante(Estudiante e){
			
				estudiantes.add(e);
			 		 
		 }
		 
		public boolean RetirarEstudiante(long ced){
			
			for(int i=0;i< estudiantes.size();++i)
 			{    
 				if(ced==estudiantes.get(i).getCedula()) //presentaexamen()
 				{  estudiantes.remove(estudiantes.get(i));
 					
 					return true;
 					}
 				
			
 			}
 				return false;
			
			
		}

		public int getNumero() {
			return numero;
		}

		public void setNumero(int numero) {
			this.numero = numero;
		}
				
				
		public void AplicarEvaluacion(){		
		 
			for(int i=0;i< estudiantes.size();++i)
			{
		      		
				estudiantes.get(i).PresentarExamen();
			
		   profesor.EvaluarEstudiante(estudiantes.get(i));
			}
		}
		
		public int Cantidad(){
			
			int cantidad= 0;
			
			cantidad= (int)(estudiantes.size());
			
			return cantidad;
		
	 }

		public Vector<Estudiante> OrdenarNota()
	    {
	    	
			    Estudiante aux=new Estudiante();	
			
	    	for(int i=1; i<estudiantes.size()-1;i++)
	    	{
	    		for(int j=i+1;j<estudiantes.size();j++)
	    		{
	    			if( estudiantes.elementAt(i).getNotafinal()< estudiantes.elementAt(j).getNotafinal())
	    			
	    			{	aux=estudiantes.elementAt(i);
	    				estudiantes.add(i,estudiantes.elementAt(j));
	    				estudiantes.add(j,aux);
	    			
	    			/*estudiantes.elementAt(i).setCedula(estudiantes.elementAt(j).getCedula());
	    			estudiantes.elementAt(i).setNombre(estudiantes.elementAt(j).getNombre());
	    			estudiantes.elementAt(i).setNota1(estudiantes.elementAt(j).getNota1());
	    			estudiantes.elementAt(i).setNota2(estudiantes.elementAt(j).getNota2());
	    			estudiantes.elementAt(i).setNota3(estudiantes.elementAt(j).getNota3());
	    			estudiantes.elementAt(i).setNotafinal(estudiantes.elementAt(j).getNotafinal());
	    			estudiantes.elementAt(j).setCedula(estudiantes.elementAt(i).getCedula());
	    			estudiantes.elementAt(j).setNombre(estudiantes.elementAt(i).getNombre());
	    			estudiantes.elementAt(j).setNota1(estudiantes.elementAt(i).getNota1());
	    			estudiantes.elementAt(j).setNota2(estudiantes.elementAt(i).getNota2());
	    			estudiantes.elementAt(j).setNota3(estudiantes.elementAt(i).getNota3());
	    			estudiantes.elementAt(j).setNotafinal(estudiantes.elementAt(i).getNotafinal());*/
	    			}
	    			}
	    	}
	    	
	    	return estudiantes;
			
			
	    
	  
			
}
		
		public Vector<Estudiante> OrdenarCedula()
	    {
			
	    	Estudiante aux;    	
	    	for(int i=1; i<estudiantes.size();i++)
	    	{
	    		for(int j=1;j<estudiantes.size()-1;j++)
	    		{
	    			if(estudiantes.elementAt(i).getCedula()< estudiantes.elementAt(j+1).getCedula())
	    				
	    			{	
	    				estudiantes.elementAt(i).setCedula(estudiantes.elementAt(j).getCedula());
	    				estudiantes.elementAt(j).setCedula(estudiantes.elementAt(i).getCedula());
	    			
	    			}
	    		}
	    	}
	    	
	    	return estudiantes;
	    }
		
		public Vector<Estudiante> ListadodeEstudiantesAprobados(Profesor p)
		{
		 	
	    	for(int i=0; i<estudiantes.size();i++)
	    	{
	    		
	    			if( estudiantes.elementAt(i).getNotafinal()>=10)
	    				
	    			{
	    			estudiantes.get(i).EstadoEstudiante(p);
	    			}
	    		}
	    	 return estudiantes;
		
		
  
		
	/*	try{
			
			BufferedReader lect= new BufferedReader(new InputStreamReader(System.in)System.out.print("datos"));
			nombre= lect.readLine();
			
			FileWriter fw = new FileWriter(nombre+".txt");
		    BufferedWriter bw = new BufferedWriter(fw);
		       PrintWriter salida = new PrintWriter(bw);

	            System.out.println("Introd… texto a guardar/Enter para terminar...");
	            nombre = lect.readLine();
	            salida.println(nombre); 

	           salida.close();
	        } catch (Exception e) 
	        {
	            System.out.println(e);
	        }
		
	    	    */	 
	    	 
		
}
	   
		public Vector<Estudiante >ListadodeEstudiantesReprobados(Profesor p)
		{
			//char estado;    	
	    	for(int i=0; i<estudiantes.size();i++)
	    	{
	    		
	    			if( estudiantes.elementAt(i).getNotafinal()<10)
	    				
	    			{
	    			estudiantes.get(i).EstadoEstudiante(p);
	    			//e.setEstado(estado);	
	    			}
	    		}
	    	 return estudiantes;
		}
		public float Promedio(){
			
			float acum=0;
			
			for(int i=0;i<estudiantes.size();i++)
				
				acum= acum + estudiantes.get(i).getNotafinal();
			  
			
			if (estudiantes.size()!=0)
				
				return acum/estudiantes.size();
			
			else return 0;
		}
							
			
		public void ListadoNotas() throws FileNotFoundException
		{
				
			for(int i=0; i<estudiantes.size();++i)
			{
			PrintStream ps = new PrintStream(new FileOutputStream("ListadodeNotas.txt"));
			ps.println("Cedula:\t\t\tNombre:\t\t\t Nota1:\t\t\t Nota2:\t\t\t Nota3:\t\t\t Nota Final:");
			ps.println("\n\n"+estudiantes.get(i).getCedula()+"\t\t\t"+estudiantes.get(i).getNombre()+"\t\t\t"+estudiantes.get(i).getNota1()+"\t\t\t"+estudiantes.get(i).getNota2()+"t\t\t\t"+estudiantes.get(i).getNota3()+"\t\t\t"+estudiantes.get(i).getNotafinal());
			ps.close();
			}	
			
			
			
		}
		
		public void ListadoCedula() throws FileNotFoundException
		{
			for(int i=0; i<estudiantes.size();++i)
			{
			PrintStream ps = new PrintStream(new FileOutputStream("ListadodeCedula.txt"));
			ps.println("\n\nCedula:\t\t\t\tNombre:");
			ps.println("\n\n"+estudiantes.get(i).getCedula()+"\t\t\t"+estudiantes.get(i).getNombre());
			ps.close();
			}	
		
		
		}

		public void ListadoAprobado() throws FileNotFoundException
		{
			for(int i=0; i<estudiantes.size();++i)
			{
			PrintStream ps = new PrintStream(new FileOutputStream("ListadodeAprobado.txt"));
			ps.println("\n\nCedula:\t\t\t\tNombre:");
			ps.println("\n\n"+estudiantes.get(i).getCedula()+"\t\t\t\t"+estudiantes.get(i).getNombre()+"\t\t\t\t"+estudiantes.get(i).getEstado());
			ps.close();
			}	
		
		
		}
		public void ListadoReprobado() throws FileNotFoundException
		{
			for(int i=0; i<estudiantes.size();++i)
			{
			PrintStream ps = new PrintStream(new FileOutputStream("ListadodeReprobado.txt"));
			ps.println("\n\nCedula:\t\t\t\tNombre:");
			ps.println("\n\n"+estudiantes.get(i).getCedula()+"\t\t\t\t"+estudiantes.get(i).getNombre()+"\t\t\t\t"+estudiantes.get(i).getEstado());
			ps.close();
			}	
		
		
		}
		
		
		
}